package com.topisv.tms.utils;

import java.util.ArrayList;
import java.util.List;

import org.springframework.beans.BeanUtils;

/**
 * 属性拷贝工具
 * @author  Fisher
 * @version  [v1.0.1, 2016年7月6日]
 * @since  [wms/通用工具]
 */
public class CopyPropertiesUtils {
    
    /**
     * 普通对象List 转化为指定对象的List
     * @param list  需要转化的list
     * @param classes   目标对象的类名
     * @return  转化完的结果
     */
	@SuppressWarnings({"rawtypes", "unchecked"})
    public static List ListToTargetList(List list, Class classes) throws Exception {
	    List targetList = new ArrayList();
	    for(Object t : list){
	        Object o = classes.newInstance();
	        BeanUtils.copyProperties(t, o);
	        targetList.add(o);
	    }
	    return targetList;
	}
	
	/**
	 * 把指定对象Object 转换成指定类的对象
	 * @param object 需要转换的对象
	 * @param classes 目标对象的类名
	 * @return 转换后的结果
	 * @throws Exception
	 */
	@SuppressWarnings({"rawtypes"})
	public static Object ObjectToTargetObject(Object object,Class classes) throws Exception{
		Object o = classes.newInstance();
		BeanUtils.copyProperties(object, o);
		return o;
	}
}
